	package Modelo;
import java.awt.Image;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import java.awt.Toolkit;



public class PuertaEntrada extends Bloque {

	private Integer prioridad;
	private Image imagenPuertaEntrada;
	
	public PuertaEntrada(Posicion posicion, Planeta planeta){
		super(posicion,planeta);
		this.prioridad = 1;
		imagenPuertaEntrada = Toolkit.getDefaultToolkit().getImage("imagenes/puertaEntrada.png");

	}
	
	public PuertaEntrada(Element xmlElement){
		super(xmlElement);
	}
	
	public Integer getPrioridad (){
		return prioridad;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "e";
	}

	@Override
	public void actuar(Pooglin pooglin) {
		pooglin.caminar();
	}

	@Override
	public void romper(Pooglin pooglin) {
		// TODO Auto-generated method stub
		this.actuar(pooglin);
	}

	@Override
	public void excavarUnBloque(Pooglin pooglin) {
		// TODO Auto-generated method stub
		this.actuar(pooglin);
	}

	@Override
	public void transportarPooglin(Pooglin pooglin) {
		// TODO Auto-generated method stub
		// Si el pooglin va en sentido hacia derecha

		if ((pooglin.haciaDerecha())&&
			adelantePooglinDerecha(pooglin)){
				((Teletransportacion)pooglin.getHabilidad()).transportarUnPaso();
				pooglin.caminar();
		}
		// Si el pooglin va en sentido contrario
		else{
			if (adelantePooglinIzquierda(pooglin)){
				((Teletransportacion)pooglin.getHabilidad()).transportarUnPaso();
				pooglin.caminar();
			}
		}
	}

	@Override
	public void construirTunel(Pooglin pooglin) {
		// TODO Auto-generated method stub
		// Si el pooglin va en sentido hacia derecha
		if ((pooglin.haciaDerecha())&&
				(adelanteDiagonalArribaDerecha(pooglin))){
			pooglin.moverDiagonalArriba();
		}
		// Si el pooglin va en sentido contrario
		else{
			if (adelanteDiagonalArribaIzquierda(pooglin))
				pooglin.moverDiagonalArriba();
		}
	}
	
	public Image getImagen() {
		return this.imagenPuertaEntrada;
	}
	
	public Element toXml(Document doc) {
		// TODO Auto-generated method stub
		Element xmlElement = doc.createElement("Bloque");
		xmlElement.setAttribute("Tipo", "PuertaEntrada");
		xmlElement.setAttribute("prioridad", ""+this.prioridad);
		xmlElement.appendChild(this.getPosicion().toXml(doc));
		
		return xmlElement;
	}
}
